Numpy study notes
General learning resources
Show numpy version and the configuration
np.__version__
np.show_config()
Memory size of an array
The memory size of an array equals to array.size * array.itemsize
Get the documentation of a numpy function
- using
np.addas an example:np.info(np.add)- in command line
$ python -c "import numpy as np; np.info33(np.add)"
- in command line
Compare arange and linspace
- Both return evenly spaced numbers over a specified interval.
arangeis similar tolinspace, but it uses step size instead of number of samples
Reverse an vector
np.flip(vec)vec[::-1]
Find non-zero/zero elements in a list
- non-zero:
np.nonzero(l) - zero:
np.argwhere(l == 0)
Create identify matrix
np.eye(n)np.identity(n)identityjust calls eye so there is no difference in how the arrays are constructed.- the main difference is that with
eyethe diagonal can may be offset, whereasidentityonly fills the main diagonal.
Pad an array with np.pad
numpy.pad(array, pad_width, mode='constant', **kwargs)
Understanding np.nan
numpy.diag
numpy.diag(v, k=0): Extract a diagonal or construct a diagonal array.- The default is 0. Use k>0 for diagonals above the main diagonal, and k<0 for diagonals below the main diagonal.
numpy array index
- what does the following code mean?
Z = np.zeros((8,8),dtype=int) Z[1::2,::2] = 1 Z[::2,1::2] = 1
matrix production in numpy
numpy.dot(m1, m2)m1 @ m2in Python 3.5 and above
Uncategorized
numpy.unravel_index(99, (6, 7, 8))- creating new dtype
color = np.dtype([("r", np.ubyte), ("g", np.ubyte), ("b", np.ubyte), ("a", np.ubyte)])
Find common values between two array
np.intersect1d(v1, v2), wherev1andv2are two numpy arrays
Ignore numpy warnings
-
defaults = np.seterr(all="ignore")- back to sanity:
np.setarr(**defaults)
- back to sanity:
-
with a context manager
with np.errstate(all="ignore"): np.arange(3)/0
Date in numpy
- today:
numpy.datetime64('today') - yesterday:
numpy.datetime64('today') - numpy.timedelta64(1) - get all the dates in cerntain month/between two dates, e.g.
np.arange('2016-07', '2016-08', dtype='datetime64[D]')
Doing calculation in place
numpy.add(A, B, out = B)
Check if two arrays are equal
- comparing values only:
np.allclose(A, B) - comapring both shape and values:
np.array_equal(A, B)
Make an array immutable
- given an array v:
v.flags.writeable = False
Read txt file in numpy
- Example
from io import StringIO # Fake file s = StringIO('''1, 2, 3, 4, 5 6, , , 7, 8 , , 9,10,11 ''') Z = np.genfromtxt(s, delimiter=",", dtype=np.int) print(Z)
Sort an array by the nth column
Z = np.random.randint(0,10,(3,3))
print(Z)
print(Z[Z[:,1].argsort()])
np.reshape()
- what does the
-1mean inv.reshape(-1, x) - more generally, the index of arraries
np.bincount()
- Convert a
np.bincount()result back to the original vectorC = np.bincount([1,1,2,3,4,4,6]) A = np.repeat(np.arange(len(C)), C) print(A)
np.enisum
See intro blog here